Python创建单链表 |
您所在的位置:网站首页 › 单链表 python › Python创建单链表 |
python中创建变量
例如: a = 10 b = 20如果交换这两个数的值,在python中直接可以这样做,在别的语言中不可以。 a,b = b,a这是因为在python中,在定义a=10时,除了开辟一块内存给10这个值**,还需要开辟一块内存用于存储10的地址**,这块称之为a。类似的,b也是如此。 所以说,在python中交换两个数的值,其实是地址的指向发生转换,类似于C语言中的指针。 在a,b = b,a 中。我们先看右边,取出b,a的值20,10。即得到a,b =20 ,10。 然后a再存储20的地址,b再存储10的地址。这样达到交换的效果。 有了上面的知识,就可以进入正题了,那么如何用python创建单链表? 首先需要定义一个结点类Node,其中self.elem用于存储数据,self.next用于存储下一个地址。然后定义一个单链表类SingleLinkList,其中__init_用于初始化头结点。下面都是一些单链表的常用对象方法,包括:判断链表是否为空、返回链表长度、遍历整个链表、在头部添加元素(头插法)、在链表尾部添加元素(尾插法)、指定位置添加元素、删除节点( 删除链表中第一个出现的item值的结点)、查找节点是否存在。 class Node(): def __init__(self, elem): self.elem = elem self.next = None # 这里的next可以随便叫 class SingleLinkList(): def __init__(self, node=None ): self.__head = node # __表示私有属性,不对外开放 # 对象方法 # 判断链表是否为空 def is_empty(self): return self.__head == None # 返回链表长度 def length(self): # cur游标,用来移动遍历节点 cur = self.__head # count记录数量 count = 0 while cur != None: count += 1 cur = cur.next return count # 遍历整个链表 def travel(self): cur = self.__head while cur != None: print(cur.elem, end=' ') cur = cur.next print() # 在头部添加元素(头插法) def add(self, item): node = Node(item) node.next = self.__head self.__head = node # 在链表尾部添加元素(尾插法) def append(self, item): # 这里的item是一个数据,不是节点 node = Node(item) if self.is_empty(): self.__head = node else: cur = self.__head while cur.next != None: cur = cur.next cur.next = node # 指定位置添加元素 def insert(self, pos, item): # pos从0开始索引 if pos self.length()-1: self.append(item) else: node = Node(item) count = 0 pre = self.__head while count |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |